/**********************************************
 * Cours :			LOG120
 * Session :		Automne 2011
 * Groupe : 		03
 * Projet : 		Lab 1
 * Étudiant(e)(s) : Garcia Carrasco, Maria
 * 					Bolduc, Andrew
 * Code(s) perm. :  GARM05559006
 * 					BOLA03098701
 * Professeur : 	Yannick Boucher
 * Chargé de labo:  Jonathan Simard
 * Nom du fichier : ShapeNodeIterator.java
 * Date crée :      2011-10-11
 **********************************************
 * Historique des modifications
 **********************************************
 * 2011-10-11		Version initiale
 **********************************************
 *
 *
 *
 * @author Maria Garcia Carrasco et Andrew Bolduc
 * Cette classe est un itérateur pour la liste chain�e de formes.
 */

package nodes;

import interfaces.IIterator;

public class ShapeNodeIterator implements IIterator {
	
	private ShapeNode shapeNode;
	
	/**
	 * @param shapeNode
	 */
	public ShapeNodeIterator(ShapeNode shapeNode) {
		this.shapeNode = shapeNode;
	}
	
	/* (non-Javadoc)
	 * @see interfaces.IIterator#isNull()
	 */
	public boolean isNull() {
		return (shapeNode == null);
	}

	/**
	 * @return boolean
	 */
	public boolean hasNext() {
		return (shapeNode.getNext() == null);
	}

	/**
	 * @return ShapeNode
	 */
	public ShapeNode next() {
		ShapeNode tempShapeNode = shapeNode;
		shapeNode = shapeNode.getNext();
		return tempShapeNode;
	}
	
	/**
	 * @return ShapeNode
	 */
	public ShapeNode previous() {
		ShapeNode tempShapeNode = shapeNode;
		shapeNode = shapeNode.getPrevious();
		return tempShapeNode;
	}
	
}